package com.example.myproject.kotlin

fun main() {
    // 数字数组，从0-5
    val nums = arrayOf(1, 2, 3, 4, 5, 6)
    // 用map 进行映射，每个数翻2倍
    val nums2 = nums.map { num: Int -> num * 2 }
    println(nums2)
    // 当参数只有一个的时候可以用it替代
    val nums3 = nums.map { it * 2 }
//    val nums3 = nums.map { ti * 2 }
    println(nums3)

    // 从数组中 筛选中 大于等于4的值 filter
    val nums4 = nums.filter { it >= 4 }
    val nums5 = nums.filter { num: Int -> num >= 4 }
    println(nums4)
    println(nums5)

//    val res1 = calculate(2, 3, { a, b -> a + b })
//    println(res1)
    // 函数是最后一个参数，可以写到小括弧的外面
    val res2 = calculate(10000, 0.8) { a, b -> a * b }
    println(res2)
}

fun calculate(a: Int, b: Double, operation: (Int, Double) -> Double): Double {
    return operation(a, b)
}